package com.abl.core.service.mt;

import com.abl.core.domain.db.MtRoom;
import com.abl.core.domain.db.MtRoomApply;
import com.abl.core.domain.project.PageSearch;
import com.abl.core.domain.mt.MtRoomApplyVo;
import com.alibaba.fastjson2.JSONObject;
import com.mybatisflex.core.paginate.Page;

/**
 * 字典服务
 */
public interface MtRoomService {

    //申请会议室资格
    boolean addApply(MtRoomApply param);

    //审批申请
    boolean applyRoom(MtRoomApply param);

    //修改会议号
    boolean updateRoomCode(MtRoomApply param);

    //开启会议
    MtRoom openMtRoom(MtRoom param);

    //结束会议
    boolean closeMtRoom(MtRoom param);

    //分页查询和我相关的历史会议
    Page<MtRoom> pageMyHistory(MtRoom param, PageSearch<MtRoom> pageSearch);

    //查询自身所处房间的用户信息
    boolean nowMyRoomLineUserInfo(MtRoom param);

    MtRoom mtRoomInfoById(String id);

    MtRoom mtRoomOpenInfoByCode(String code);

    //生成会议分享码
    JSONObject createMtLinkQrCode(String code);

    //加入会议,并记录日志
    MtRoom inMtRoom(MtRoom param);

    MtRoom myOpenMtRoom(MtRoom param);

    /**
     * 分页查询 申请会议资格记录
     *
     * @param mtRoomApply
     * @param pageSearch
     * @return
     */
    Page<MtRoomApplyVo> page(MtRoomApplyVo mtRoomApply, PageSearch pageSearch);

    Object approve(MtRoomApply mtRoomApply);
}
